package com.didd.core.message.dingtalk.entity;

import cn.hutool.core.util.StrUtil;
import com.didd.core.message.dingtalk.type.MessageType;
import lombok.Builder;
import java.util.HashMap;
import java.util.Map;

/**
 * 文本请求消息
 *
 * @author diddd
 * @version 1.0.0
 */
@Builder
public class TextMessage extends BaseMessage {

    /**
     * 文本消息的具体内容
     */
    private String content;

    /**
     * 可以通过群成员的绑定手机号来艾特具体的群成员
     */
    private String[] atMobiles;

    /**
     * 是否艾特所有人
     * 也可以设置isAtAll=true来艾特所有人
     */
    private boolean isAtAll;

    @Override
    public Map toMessageMap() {

        if (StrUtil.isEmpty(this.content)) {
            throw new IllegalArgumentException("please check the necessary parameters!");
        }

        HashMap<String, Object> resultMap = new HashMap<>(8);
        resultMap.put("msgtype", MessageType.text);

        HashMap<String, String> textItems = new HashMap<>(8);
        textItems.put("content", this.content);
        resultMap.put("text", textItems);

        HashMap<String, Object> atItems = new HashMap<>(8);
        atItems.put("atMobiles", this.atMobiles);
        atItems.put("isAtAll", this.isAtAll);
        resultMap.put("at", atItems);

        return resultMap;
    }

}
